package ch.hslu.hs12.dmg;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.sun.rowset.CachedRowSetImpl;

public class Teile {

	private Connection conn;
	int bestellung;

	public void getTeil() throws SQLException {
		
		CachedRowSetImpl crs = new CachedRowSetImpl();

		try {
			Class.forName(

			"com.microsoft.sqlserver.jdbc.SQLServerDriver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		try {
			conn = DriverManager
					.getConnection(
							// "jdbc:sqlserver://localhost\\DMG2012;Database=dmg_project",
							// "sa", "DMG2012GR09");
							"jdbc:sqlserver://192.168.27.132\\DMG2012;Database=dmg_project",
							"sa", "DMG2012GR09");
			Statement stmt = conn.createStatement();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		try {
			Statement stmt = conn.createStatement();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		// Select TOP 1 * from Teile where Typ=11
		// SELECT count(*) FROM Teile WHERE Typ=11
		// SELECT count(*) as countZahl FROM Teile WHERE Typ=11
		
		Statement stmt = conn.createStatement();
		ResultSet downSmall = stmt.executeQuery("SELECT count(*) as countZahl FROM Teile WHERE Typ=11"); // Downhiller Small
		// casten in int...
		int anzahlDownSmall = downSmall.getInt("countZahl");
		
		if(anzahlDownSmall>0){
			ResultSet rahmen = stmt.executeQuery("INSERT INTO Teile (Groessenangabe, Preis, Bezeichnung, Typ) VALUES " +
					"('Small', 43, 'Downhiller Rahmen Small', 10110)"); // Rahmen erstellen
			
			ResultSet deleteNabe = stmt.executeQuery("Delete Teile where Bezeichnung='aNabe'"); // Nabe loeschen
			ResultSet deleteSpeiche = stmt.executeQuery("Delete Teile where Bezeichnung='aSpeiche'"); // Speiche loeschen
			ResultSet deleteFelge = stmt.executeQuery("Delete Teile where Bezeichnung='aFelge'"); // Felge loeschen			
			ResultSet vorderrad = stmt.executeQuery("INSERT INTO Teile (Groessenangabe, Preis, Bezeichnung, Typ) VALUES " +
					"('Small', 20, 'Downhiller Vorderrad Small', 10111)"); // Vorderrad erstellen
			
			ResultSet deleteNabe2 = stmt.executeQuery("Delete Teile where Bezeichnung='aNabe'"); // Nabe loeschen
			ResultSet deleteSpeiche2 = stmt.executeQuery("Delete Teile where Bezeichnung='aSpeiche'"); // Speiche loeschen
			ResultSet deleteFelge2 = stmt.executeQuery("Delete Teile where Bezeichnung='aFelge'"); // Felge loeschen
			ResultSet hinterrad = stmt.executeQuery("INSERT INTO Teile (Groessenangabe, Preis, Bezeichnung, Typ) VALUES " +
					"('Small', 20, 'Downhiller Hinterrad Small', 10112)"); // Vorderrad erstellen			

			ResultSet deleteVorderrad = stmt.executeQuery("Delete Teile where Bezeichnung='aVorderrad'"); // Vorderrad loeschen
			ResultSet deleteHinterrad = stmt.executeQuery("Delete Teile where Bezeichnung='aHinterrad'"); // Hinterrad loeschen
			ResultSet velo = stmt.executeQuery("INSERT INTO Teile (Groessenangabe, Preis, Bezeichnung, Typ) VALUES " +
					"('Small', 20, 'Downhiller Small', 10011)"); // Velo erstellen
		}
		
		

		switch (bestellung) {
		case 11:

			System.out.println("Die Bestellung ist ein Downhiller Small.");
			/*
	11/10011: Downhiller Small
	110/10110: Downhiller Rahmen Small
	111/10111: Downhiller Vorderrad Small
		1110: Nabe Small
		1111: Speiche Small
		1112: Felge Small
	112/10112: Downhiller Hinterrad Small
		1110: Nabe Small
		1111: Speiche Small
		1112: Felge Small 
			 */
			    						
					// Muss in Tabelle Teile Velo schauen mit Typ 11
					
					
					//ResultSet choiceMitarbeiter = stmt.executeQuery("Select TOP 1 * from Mitarbeiter where BedienungsMaschinenID IS NULL"); // freier Mitarbeiter waehlen
					//Mitarbeiter ID oder so speichern, so dass er nacher wieder freigegeben werden kann
			
					ResultSet rahmen = stmt.executeQuery("INSERT INTO Teile (Groessenangabe, Preis, Bezeichnung, Typ) VALUES " +
							"('Small', 43, 'Downhiller Rahmen Small', 10110)"); // Rahmen erstellen
					
					ResultSet deleteNabe = stmt.executeQuery("Delete Teile where Bezeichnung='aNabe'"); // Nabe loeschen
					ResultSet deleteSpeiche = stmt.executeQuery("Delete Teile where Bezeichnung='aSpeiche'"); // Speiche loeschen
					ResultSet deleteFelge = stmt.executeQuery("Delete Teile where Bezeichnung='aFelge'"); // Felge loeschen			
					ResultSet vorderrad = stmt.executeQuery("INSERT INTO Teile (Groessenangabe, Preis, Bezeichnung, Typ) VALUES " +
							"('Small', 20, 'Downhiller Vorderrad Small', 10111)"); // Vorderrad erstellen
					
					ResultSet deleteNabe2 = stmt.executeQuery("Delete Teile where Bezeichnung='aNabe'"); // Nabe loeschen
					ResultSet deleteSpeiche2 = stmt.executeQuery("Delete Teile where Bezeichnung='aSpeiche'"); // Speiche loeschen
					ResultSet deleteFelge2 = stmt.executeQuery("Delete Teile where Bezeichnung='aFelge'"); // Felge loeschen
					ResultSet hinterrad = stmt.executeQuery("INSERT INTO Teile (Groessenangabe, Preis, Bezeichnung, Typ) VALUES " +
							"('Small', 20, 'Downhiller Hinterrad Small', 10112)"); // Vorderrad erstellen			

					ResultSet deleteVorderrad = stmt.executeQuery("Delete Teile where Bezeichnung='aVorderrad'"); // Vorderrad loeschen
					ResultSet deleteHinterrad = stmt.executeQuery("Delete Teile where Bezeichnung='aHinterrad'"); // Hinterrad loeschen
					ResultSet velo = stmt.executeQuery("INSERT INTO Teile (Groessenangabe, Preis, Bezeichnung, Typ) VALUES " +
							"('Small', 20, 'Downhiller Small', 10011)"); // Velo erstellen	
					
					// ResultSet freeMitarbeiter = stmt.executeQuery("Select TOP 1 * from Mitarbeiter where BedienungsMaschinenID IS NULL"); // freier Mitarbeiter
			     

			break;
		case 12:
			System.out.println("Die Bestellung ist ein Downhiller Medium.");
			break;
		case 13:
			System.out.println("Die Bestellung ist ein Downhiller Large.");
			break;
		case 21:
			System.out.println("Die Bestellung ist ein Fully Small.");
			break;			
		case 22:
			System.out.println("Die Bestellung ist ein Fully Medium.");
			break;	
		case 23:
			System.out.println("Die Bestellung ist ein Fully Large.");
			break;	
		case 31:
			System.out.println("Die Bestellung ist ein Hardtail Small.");
			break;	
		case 32:
			System.out.println("Die Bestellung ist ein Hardtail Medium.");
			break;	
		case 33:
			System.out.println("Die Bestellung ist ein Hardtail Large.");
			break;	
		case 41:
			System.out.println("Die Bestellung ist ein Fixi Small.");
			break;	
		case 42:
			System.out.println("Die Bestellung ist ein Fixi Small.");
			break;			
		case 43:
			System.out.println("Die Bestellung ist ein Fixi Large.");
			break;				
		default:
			System.out.println("Falsche Bestellnr.");
		}

	}

	public void deleteTeil() {
		// Delete Teile where Teilnr=7

		try {
			Class.forName(

			"com.microsoft.sqlserver.jdbc.SQLServerDriver");
			conn = DriverManager
					.getConnection(
							// "jdbc:sqlserver://localhost\\DMG2012;Database=dmg_project",
							// "sa", "DMG2012GR09");
							"jdbc:sqlserver://192.168.27.132\\DMG2012;Database=dmg_project",
							"sa", "DMG2012GR09");
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("Delete Teile where Teilnr=2341234");

		} catch (Exception ex) {
			// conn.rollback();
			// System.out.println(ex.getMessage());
		} finally {
			System.out.println("SQl-Connection closing");
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}

	}

}
